package com.zdkj.subway.check.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Id;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * TVM票款差异确认通知 sw_au_tvm_notice
 */
@Data
@TableName("sw_au_tvm_notice")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "TVM票款差异确认通知")
public class SwAuTvmNotice extends Model<SwAuTvmNotice> {
    private static final long serialVersionUID = 1L;
    /**
     * 唯一标识
     */
    @Id
    Integer id;

    /**
     * TVM票款差异表id
     */
    Integer relationid;

    /**
     * 线路编码
     */
    String lineCode;

    /**
     * 车站编码
     */
    String stationCode;

    /**
     * 通知类别 1:TVM 2:分钱箱
     */
    String noticeType;

    /**
     * 收入日期
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    Date recordTime;

    /**
     * TVM编号
     */
    String tvmCode;

    /**
     * 钱箱类型（字典）
     */
    String cashBoxType;

    /**
     * 实点金额（分）
     */
    BigDecimal actualAmount;

    /**
     * 系统金额（分）
     */
    BigDecimal systemAmount;

    /**
     * 差异金额（分）
     */
    BigDecimal differenceAmount;

    /**
     * 结算开始时间年月日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    Date settleBeginDate;

    /**
     * 结算结束时间年月日
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern="yyyy-MM-dd")
    Date settleEndDate;

    /**
     * 最晚回复期限(天)
     */
    Integer replyPeriod;

    /**
     * 是否补款0：未补款 1：已补款
     */
    Integer isSupPayment;

    /**
     * 通知状态 1：未通知 2：已通知 3：已申诉
     */
    String noticeState;

    /**
     * 申诉状态：1：待申诉 2：已申诉 3：申诉成功 4：申诉失败 5：撤销申诉
     */
    String appealStatus;

    /**
     * 申诉类型： 1：期限内申诉 2：超限期内申诉
     */
    String appealType;

    /**
     * 审批状态（字典）
     */
    String auditSate;

    /**
     * 差异描述
     */
    String differenceDescription;

    /**
     * 下发状态 1：未下发 2：已下发
     */
    String sendStatus;

    /**
     * 下发时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date sendTime;

    String saleoperatorConfirmStatus;

    /**
     * 附件路径
     */
    String fileUrl;

    /**
     * 申诉原因（字典）
     */
    String appealReason;

    /**
     * 期限内未申诉原因
     */
    String overtimeReason;

    /**
     * 售票员工号
     */
    String conductorPersonCode;

    /**
     * 售票员名称
     */
    String conductorPersonName;

    /**
     * 申诉回复
     */
    String appealReply;

    /**
     * 申诉人ID
     */
    Integer appealOperatorId;

    /**
     * 部门票务专业审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date auditDeptTime;

    /**
     * 部门票务专业审核人工号
     */
    String auditDeptJobNo;

    /**
     * 部门票务专业名称
     */
    String auditDeptName;

    /**
     * 部门审核意见
     */
    String auditDeptOpinion;

    /**
     * 车间票务专业审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date auditWorkshopTime;

    /**
     * 车间票务专业审核人工号
     */
    String auditWorkshopJobNo;

    /**
     * 车间票务专业审核人名称
     */
    String auditWorkshopName;

    /**
     * 车间票务专业审核意见
     */
    String auditWorkshopOpinion;

    /**
     * 车站审核审核时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date auditStationTime;

    /**
     * 车站审核人工号
     */
    String auditStationJobNo;

    /**
     * 车站审核人名称
     */
    String auditStationName;

    /**
     * 车站审核人意见
     */
    String auditStationOpinion;

    /**
     * 创建人ID
     */
    Integer creatorId;

    /**
     * 创建人名称
     */
    String creatorName;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date createTime;

    String remark;

    /**
     * 审批人
     */
    String approverName;

    /**
     * 审批人工号
     */
    String approverJob;

    /**
     * 审批时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
    Date approverTime;

    /**
     * 数据来源，区分是从审核主页加入的还是1手工加入，默认值0是从审核主页加入
     */
    String dataSource;

    /**
     * 作废状态：0未作废 1已作废
     */
    String invalidStatus;

    /**
     * 删除标志 1：删除 0：未删
     */
    String delFlag;
}
